package com.jn.erp.wechat.staff.api.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jn.erp.common.core.result.AjaxResult;
import com.jn.erp.web.api.interaction.entity.TIntegralConfig;
import com.jn.erp.web.api.interaction.entity.dto.TIntegralDto;
import com.jn.erp.web.api.interaction.entity.vo.TIntegralVo;
import com.jn.erp.web.api.interaction.service.TIntegralConfigService;
import com.jn.erp.web.api.interaction.service.TIntegralService;
import com.jn.erp.wechat.common.api.controller.base.BaseWxAuthController;
import com.jn.erp.wechat.common.api.entity.dto.WxUserDto;
import com.jn.erp.wechat.core.WxTableDataInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;


/**
 * <pre>
 *  积分
 * </pre>
 *
 * @author sunjiyong
 * @since 2024/11/18 14:47
 */
@RestController
@RequestMapping("/wx/integral")
public class MpIntegralController  extends BaseWxAuthController {

    @Autowired
    private TIntegralService tIntegralService;
    @Autowired

    private TIntegralConfigService tIntegralConfigService;


    /**
     积分列表   /tIntegral/list
     */
    @GetMapping("/list")
    public WxTableDataInfo list(TIntegralVo tIntegralVo){
        WxUserDto wxUser = getWxUser();
        startPage();
        //机构id
        tIntegralVo.setOrgId(wxUser.getOrgIdLong());
        //当前登录人id
        tIntegralVo.setCreateUser(String.valueOf(wxUser.getUserId()) );
        tIntegralVo.setCreateDate(LocalDateTime.now() );
        List<TIntegralDto> list =  tIntegralService.tIntegralList(tIntegralVo);
        return getWxDataTable(list);
    }

    /**
     *保存      /tIntegral/save
     */
    @PostMapping("/save")
    public AjaxResult save(@RequestBody TIntegralVo tIntegralVo){
        WxUserDto wxUser = getWxUser();
        TIntegralConfig tIntegralConfig = tIntegralConfigService.getOne(new QueryWrapper<TIntegralConfig>().eq("org_id", wxUser.getOrgId()).eq("is_delete", "0"));
        //机构id
        tIntegralVo.setOrgId(wxUser.getOrgIdLong());
        //当前登录人id
        tIntegralVo.setName(tIntegralConfig.getName());
        tIntegralVo.setTId(tIntegralConfig.getId());
        tIntegralVo.setCreateUser(String.valueOf(wxUser.getUserId()) );
        tIntegralVo.setCreateDate(LocalDateTime.now() );
        tIntegralVo.setIsDelete("0");
        tIntegralVo.setType(4);
        tIntegralService.save(tIntegralVo);
        return AjaxResult.success("S00");
    }



    /**
     *配置保存修改       /tIntegralConfig/saveAndUpdate
     */
    @PostMapping("/configSaveAndUpdate")
    public AjaxResult saveAndUpdate(@RequestBody TIntegralConfig tIntegralConfig){
        WxUserDto wxUser = getWxUser();
        //机构id
        tIntegralConfig.setOrgId(wxUser.getOrgIdLong());

        if(Objects.isNull(tIntegralConfig.getId())){
            //当前登录人id
            tIntegralConfig.setCreateUser(String.valueOf(wxUser.getUserId()) );
            tIntegralConfig.setCreateDate(LocalDateTime.now() );
            tIntegralConfig.setIsDelete("0");
            tIntegralConfigService.save(tIntegralConfig);
        }else {
            //当前登录人id
            tIntegralConfig.setUpdateUser(String.valueOf(wxUser.getUserId()) );
            tIntegralConfig.setUpdateDate(LocalDateTime.now() );
            tIntegralConfigService.updateById(tIntegralConfig);
        }
        return AjaxResult.success("S00");
    }
    /**
     获取配置  /tIntegralConfig/getOne
     */
    @PostMapping("/configGetOne")
    public AjaxResult getOne(@RequestBody TIntegralConfig tIntegralConfig){
        WxUserDto wxUser = getWxUser();
        //机构id
        tIntegralConfig.setOrgId(wxUser.getOrgIdLong());
        TIntegralConfig t = tIntegralConfigService.getOne(new QueryWrapper<TIntegralConfig>().eq("org_id",wxUser.getOrgId()).eq("is_delete","0"));
        return AjaxResult.success(t);
    }



    /**
     学员内积分列表     /tIntegral/listSecond
     */
    @GetMapping("/listSecond")
    public WxTableDataInfo listSecond(TIntegralVo tIntegralVo){
        WxUserDto wxUser = getWxUser();
        //机构id
        tIntegralVo.setOrgId(wxUser.getOrgIdLong() );
        //当前登录人id
        tIntegralVo.setCreateUser(String.valueOf(wxUser.getUserId()) );
        tIntegralVo.setCreateDate(LocalDateTime.now() );

        startPage();
        List<TIntegralDto> list =  tIntegralService.tIntegralListSecond(tIntegralVo);

        return getWxDataTable(list);
    }



    /**
     积分统计     /tIntegral/count
     */
    @PostMapping("/count")
    public AjaxResult  count(@RequestBody TIntegralVo tIntegralVo){
        WxUserDto wxUser = getWxUser();
        //机构id
        tIntegralVo.setOrgId(wxUser.getOrgIdLong());
        //当前登录人id
        tIntegralVo.setCreateUser(String.valueOf(wxUser.getUserId()) );
        tIntegralVo.setCreateDate(LocalDateTime.now() );
        Map map =  tIntegralService.tIntegralCount(tIntegralVo);
        return AjaxResult.success(map);
    }

}
